Refreezing Function

private function Refreezing(tempAir, tempMelt, cMelt, cRefreeze) result(freeze)

compute refreezing rate (m/s) of the water retained in snowpack

References: van Verseveld, W. J., Weerts, A. H., Visser, M., Buitink, J., Imhoff, R. O., Boisgontier, H., Bouaziz, L., Eilander, D., Hegnauer, M., ten Velden, C., and Russell, B.: Wflow_sbm v0.7.3, a spatially distributed hydrological model: from global data to local applications, Geosci. Model Dev., 17, 3199–3234, https://doi.org/10.5194/gmd-17-3199-2024, 2024

Arguments

Type IntentOptional Attributes Name
real(kind=float), intent(in) :: tempAir

air temperature (°C)

real(kind=float), intent(in) :: tempMelt

melting temperature (°C)

real(kind=float), intent(in) :: cMelt

melting coefficient (m/s/°C)

real(kind=float), intent(in) :: cRefreeze

refreezing coefficient (-)

Return Value real(kind=float)

refreezing rate (m/s)


Source Code

FUNCTION Refreezing   & 
  !
  ( tempAir, tempMelt, cMelt, cRefreeze ) &
  !
RESULT (freeze)

IMPLICIT NONE

!Arguments with intent(in):
REAL (KIND = float), INTENT(IN) :: tempAir !! air temperature (°C)
REAL (KIND = float), INTENT(IN) :: tempMelt !! melting temperature (°C)
REAL (KIND = float), INTENT(IN) :: cMelt !! melting coefficient (m/s/°C)
REAL (KIND = float), INTENT(IN) :: cRefreeze !! refreezing coefficient (-)

!local declarations:
REAL (KIND = float) :: freeze !! refreezing rate (m/s)

!---------------------end of declarations--------------------------------------

IF ( tempAir <= tempMelt ) THEN
    freeze = cRefreeze * cMelt * ( tempMelt - tempAir )	   
ELSE
   freeze = 0.
END IF


RETURN
END FUNCTION Refreezing